package com.suep.business.service;

import com.suep.business.domain.Coupon;
import com.suep.business.dto.CouponDTO;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface ICouponService {
    void receive(Integer userId, CouponDTO coupon);

    Integer useMyCoupon(Integer userId);


    List<CouponDTO> selectMyCoupon(Integer userId);

    List<CouponDTO> selectAllCoupon();

    /**
     * 插入一条优惠券数据
     *
     * @param coupon 要插入的优惠券对象
     * @return 插入操作影响的行数
     */
    Integer insertCoupon(Coupon coupon);

    /**
     * 根据主键ID查询优惠券
     *
     * @param id 优惠券主键ID
     * @return 对应的优惠券对象，如果未找到则返回null
     */
    Coupon selectCouponById(Integer id);

    /**
     * 根据优惠码查询优惠券
     *
     * @param code 优惠券优惠码
     * @return 对应的优惠券对象，如果未找到则返回null
     */
    Coupon selectCouponByCode(String code);

    /**
     * 根据店铺ID查询优惠券
     *
     * @param storeId 店铺外键ID
     * @return 对应的优惠券对象列表，如果未找到则返回空列表
     */
    List<Coupon> selectCouponsByStoreId(Integer storeId);

    /**
     * 更新优惠券信息
     *
     * @param coupon 包含更新信息的优惠券对象
     * @return 更新操作影响的行数
     */
    Integer updateCoupon(Coupon coupon);

    /**
     * 根据主键ID删除优惠券
     *
     * @param id 优惠券主键ID
     * @return 删除操作影响的行数
     */
    Integer deleteCouponById(Integer id);
}
